public class code2 {
    public String convert(String s, int numRows) {
        //处理边界情况
        if(numRows==1) return s;

        int d = 2*numRows-2;
        int n = s.length();
        StringBuilder ret = new StringBuilder();
        //1.处理第一行
        for(int i=0;i<n;i+=d) {
            ret.append(s.charAt(i));
        }
        //处理中间行
        for(int k=1;k<numRows-1;k++) {
            for(int i=k,j=d-i;i<n||j<n;i+=d,j+=d) {//为什么要用||因为只要i或者j一个满足，就需要将字符放入
                if(i<n) ret.append(s.charAt(i));//i下标不能越界
                if(j<n) ret.append(s.charAt(j));
            }
        }
        //处理最后一行
        for(int i=numRows-1;i<n;i+=d) {
            ret.append(s.charAt(i));
        }
        return ret.toString();
    }
}
